package com.auntvt.timo.jpax.core.quick;

import org.springframework.dao.InvalidDataAccessApiUsageException;

/**
 * Quick简单操作
 *
 * @author 小懒虫 <auntvt@163.com>
 * @date 2021/7/31
 */
public class Quick<T> extends AbstractJpaQuick<T, Quick<T>, String> {

    private static final long serialVersionUID = 3095796904156988533L;

    /**
     * 子类创建一个本身的实例对象
     */
    @Override
    protected Quick<T> instance() {
        return new Quick<>();
    }

    /**
     * 将字段名称对象格式化为字符串类型，由子类负责实现
     *
     * @param fieldName 字段名称对象
     * @return 字段名
     */
    @Override
    protected String fieldNameToString(String fieldName) {
        if (fieldName == null || fieldName.trim().length() == 0) {
            throw new InvalidDataAccessApiUsageException("字段名不能为空！");
        }
        return fieldName;
    }

    /**
     * 转换为LambdaQuick
     *
     * @return LambdaQuick<T>
     */
    public LambdaQuick<T> lambda() {
        return this.convert(new LambdaQuick<>());
    }
}
